//
//  SWTabBar.swift
//  STslender
//
//  Created by mac on 15/12/5.
//  Copyright © 2015年 itcast. All rights reserved.
//

import  UIKit

// 自定义tabBar item
class  SWTabBar : UITabBar {
    
    var buttonClosure:(() ->())?
    
    override  init (frame: CGRect) {
        super.init(frame: frame)
        setUpUI()
    }
    //重写  init：frame  必须实现 init ：coder方法
    //只要view 是从  xib 和sb 加载出来的 ，就会 调用这个方法
    required  init ?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setUpUI()
        
        
    }
    
    
    func setUpUI(){
       // 添加撰写的 button
        addSubview(itemButton)
        
    }
    
    
    // 调整 自定义 按钮的位置
    override func layoutSubviews() {
        
         super.layoutSubviews()
        //开发中  设置子view居中时  不要以父类的center为中心
//        itemButton.center = CGPointMake(self.frame.width * 0.5, self.frame.height * 0.5)
        itemButton.center = CGPointMake(frame.width * 0.5, frame.height * 0.5)
        
        let  ButtonWidth =  frame.width / 5
        
         var  index = 0
        //设置整体的 item的 位置
        for childButton in subviews{

//            if childButton.isKindOfClass(UITabBarItem.self){
//                
//            }
            if childButton.isKindOfClass(NSClassFromString("UITabBarButton")!){
            
                let  x = CGFloat(index) * ButtonWidth
                
                 childButton.frame = CGRect(x: x, y: 0, width: ButtonWidth, height:frame.height)
                
                 index++
                if index == 2{
                    index++
                }
                
            }
        
        }
        
        
    }
    
    //闭包监听 点击事件
    @objc private  func ComposeButtonClick(){
        
        //执行闭包
          buttonClosure!()
    }
    
    
    //1.- 懒加载控件 设置UI内容
    
    lazy  var itemButton: UIButton = {
        
        let  button = UIButton()
        //给按钮添加  点击事件
        
        button.addTarget(self, action:"ComposeButtonClick", forControlEvents: UIControlEvents.TouchUpInside)
        
         button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal)
          button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Highlighted)
        
         // 设置不同状态的图片
        
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Highlighted)
        
         // 设置button的大小
        
         button.sizeToFit()
        
        
        
        return button
        
        
        }()

    
}

